UNaB
Diplomatura en Análisis de Datos para el Desarrollo de Políticas
Públicas
Universidad Nacional Guillermo Brown
Coordinador:
Juan Domingo González
Referidos al propósito de la investigación, los Objetivos Generales son potenciales, puede ser algo muy genérico como “Comprender la problemática del sector X”
El objetivo específico refleja el resultado esperable en el plazo previsto para la realización del plan. El objetivo general, al cual contribuye el objetivo específico, se orienta hacia resultados posibles de obtener en el largo plazo en la línea de investigación mediante trabajos futuros no incluidos en el plan.
Indicar el estado de la situación, y en lo posible, trabajos similares en literatura especializada o casos de estudio similares que comparten elementos con el tema planteado.
Indicar si la factibilidad del trabajo propuesto, datos disponibles para hacer los análisis, acceso a software especial de análisis de datos y bibliografía. En este análisis, prestar especial atención al tiempo disponible para realizar el trabajo, teniendo en cuenta que es un plan acotado con fecha final aproximada 31-08-2023. * Repositorio de datos GitHub: https://github.com/DiploDatosUNAB/UNaB-AdDyPP-TFI * Drive: 09-Proyecto Final * Instructivo: Plan de Trabajo - Instructivo.docx * Colab: UNaB - AdDyPP - Trabajo Final Integrador.ipynb
Incluir libros, artículos científicos, sitios web, repositorios digitales de datos asociados al plan. En lo posible, hacerlo siguiendo las normas bibliográficas académicas. Por ejemplo https://biblioguias.uma.es/citasybibliografia/ejemplosAPA
Variables de Entorno
# Warnings de Librerías
WARN_ACT <- FALSE
PATH <- "datos/"
PATH2 <- "datos/actividades/"
puntos_arch <- "puntos_digitales.csv"
comprimido <- "departamentos.7z"
departamentos <- "departamentos.json"
indicadores <- "indicadores.shp"Instalación condicional de librerías
Instala solos si detecta que falta instalarlas.
# instalación condicional de librerías (solo instala si faltan)
# https://stackoverflow.com/questions/66869137/installing-r-packages-in-colab
# https://stackoverflow.com/questions/63594521/install-a-r-package-permanently-in-google-colab
instalar <- function(libreria) {
if (!requireNamespace(libreria, quietly = TRUE)) {
install.packages(libreria)
}
}
instalar("gt")
instalar("gtExtras")
instalar("tmap")## The legacy packages maptools, rgdal, and rgeos, underpinning this package
## will retire shortly. Please refer to R-spatial evolution reports on
## https://r-spatial.org/r/2023/05/15/evolution4.html for details.
## This package is now running under evolution status 0
instalar("sf")
instalar("leaflet")
instalar("archive")
instalar("ggplot2")
# instalar("Hmisc")
# instalar("purrr")
# instalar("lattice")
# instalar("readr")
# instalar("cluster")
# instalar("dplyr")
# instalar("stats")
# instalar("stringr")
# instalar("corrplot")
# instalar("ergm") para medianas ponderadas. No utilizado
# demora 30-45 segundos
# instalar("psych")
# demora demora 3-8 segundos
# instalar("skimr")
# demora 5-7 minutos
# instalar("caret")Carga de librerías
# Función de carga condicional de librerías (solo carga si están instaladas)
cargar <- function(libreria, warns = WARN_ACT) {
if (requireNamespace(libreria, quietly = TRUE)) {
if(warns) {
library(libreria, character.only = TRUE)
} else{
suppressMessages(library(libreria, character.only = TRUE))
}
}
}
# carga de librerías a utilizar
cargar("readr") # lectura de datos
cargar("dplyr") # manipulación de df
cargar("gt") # tablas
cargar("gtExtras") # tablas
cargar("tmap") # mapas interactivos
cargar("sf") # datos geoespaciales
cargar("leaflet") # mapas interactivos
cargar("archive") # urilidades
cargar("ggplot2") # graficación
# cargar("lattice") # graficación estadistica
# cargar("cluster") # clustering
# cargar("skimr") # estadísticas
# cargar("stats") # estadísticas
# cargar("kableExtra") # tablas
# cargar("psych") # estadísticas
# cargar("purrr") # manejo de listas
# cargar("IRdisplay") # display de notebook
# cargar("tidyverse") # conjunto de paquetes tidy
# cargar("stringr") # cadenas de caracteres
# cargar("corrplot") # grafico de correlación
# cargar("Hmisc") # correlaciones
# cargar("caret") # entrenamiento
# cargar("ergm") # análisis estadísticosEl Programa Punto Digital cuenta con dispositivos instalados a lo largo y ancho del territorio argentino. Su objetivo fundamental es la reducción de la brecha digital a los fines de contribuir a la mejora de la calidad de vida de las y los habitantes del país. Esta tabla contiene el listado de los puntos digitales.
# Puntos digitales
puntos <- read.csv(paste0(PATH, puntos_arch), sep = ",", encoding = "ISO-8859-1")
sample_n(puntos, 5) |>
dplyr::mutate(horarios = substr(horarios, 1, 20)) |> # Truncar "horarios"
gt() |>
tab_header(
title = "Puntos Digitales*",
subtitle = "* muestra"
) |>
tab_options(table.width = "100%") |>
opt_stylize(style = 5, color = 'cyan')| Puntos Digitales* | ||||||||||||||||||
| * muestra | ||||||||||||||||||
| id_pd | nombre_pd | direccion | nombre_institucional | id_provincia | id_departamento | id_localidad | cod_bahra_localidad | id_municipio | provincia | departamento | localidad | municipio | mail_institucional | latitud | longitud | horarios | link_facebook | estado |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 167 | Pomán | Barrio San Nicolás S/N | CIC | AR-K | 1341 | 2726 | 10084070000 | CAT019 | Catamarca | Poman | Poman | Pomán | poman@puntodigital.gob.ar | -28.37489 | -66.29650 | Lunes 08:00 a 12:00 | Temporalmente cerrado | |
| 745 | Itá Ibaté | Julio Roca s/n | Edificio Municipal | AR-W | 1412 | 4492 | 18063010000 | COR025 | Corrientes | General Paz | Ita Ibate | Itá Ibaté | itaibate@puntodigital.gob.ar | -27.42863 | -57.34332 | Lunes 08:00 a 12:00 | Activo | |
| 698 | San Jerónimo | Enrique Niemann 808 | ONG | AR-S | 1700 | 11389 | 82070270000 | SFE290 | Santa Fe | Las Colonias | San Jeronimo Norte | San Jerónimo Norte | sanjeronimo@puntodigital.gob.ar | -31.54773 | -61.08641 | Lunes 07:00 a 13:00 | Activo | |
| 184 | Laguna Blanca (Formosa) | Rivadavia S/N | Biblioteca Popular | AR-P | 1451 | 6920 | 34049020000 | FOR017 | Formosa | Pilcomayo | Laguna Blanca | Laguna Blanca | lagunablanca@puntodigital.gob.ar | -25.13342 | -58.24470 | Lunes 07:00 a 19:00 | Activo | |
| 1146 | Lago Posadas | Gendarmería Nacional s/n | Ex Escuela Hogar N° 1 Francisco P Moreno | AR-Z | 1610 | 10926 | 78049030000 | SCR017 | Santa Cruz | Rio Chico | Hipolito Yrigoyen | Lago Posadas (ex Hipólito Yrigoyen) | lagoposadas@puntodigital.gob.ar | -47.56735 | -71.73839 | Lunes 09:00 a 13:00 | Activo | |
columnas <- c("id_pd", "nombre_pd", "direccion", "nombre_institucional",
"id_provincia", "id_departamento", "id_localidad",
"cod_bahra_localidad", "id_municipio", "provincia",
"departamento", "localidad", "municipio", "mail_institucional",
"latitud", "longitud", "horarios", "link_facebook", "estado")Dimensiones
# dimensiones
cat("El DataFrame tiene", dim(puntos)[1], "observaciones y", dim(puntos)[2], "variables.")## El DataFrame tiene 664 observaciones y 19 variables.
Medidas de tendencia central - Empleo AMBA
## id_pd nombre_pd direccion nombre_institucional
## Min. : 40.0 Length:664 Length:664 Length:664
## 1st Qu.: 254.8 Class :character Class :character Class :character
## Median : 515.0 Mode :character Mode :character Mode :character
## Mean : 538.6
## 3rd Qu.: 767.2
## Max. :1289.0
##
## id_provincia id_departamento id_localidad cod_bahra_localidad
## Length:664 Min. :1195 Min. : 1 Min. :2.001e+09
## Class :character 1st Qu.:1345 1st Qu.: 2613 1st Qu.:1.006e+10
## Mode :character Median :1451 Median : 6260 Median :3.008e+10
## Mean :1465 Mean : 6296 Mean :3.808e+10
## 3rd Qu.:1600 3rd Qu.: 9505 3rd Qu.:6.603e+10
## Max. :1723 Max. :13537 Max. :9.401e+10
## NA's :1 NA's :1
## id_municipio provincia departamento localidad
## Length:664 Length:664 Length:664 Length:664
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## municipio mail_institucional latitud longitud
## Length:664 Length:664 Min. :-54.82 Min. :-72.34
## Class :character Class :character 1st Qu.:-34.86 1st Qu.:-65.47
## Mode :character Mode :character Median :-32.06 Median :-62.96
## Mean :-32.17 Mean :-62.75
## 3rd Qu.:-27.57 3rd Qu.:-59.10
## Max. :-22.10 Max. :-54.20
##
## horarios link_facebook estado
## Length:664 Length:664 Length:664
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
Mapa
# Geolocalización de Puntos Digitales
# https://rdrr.io/cran/tmap/man/tm_symbols.html
# https://r-tmap.github.io/tmap-book/layers.html
mostrar <- c("id_pd", "nombre_pd", "direccion", "provincia", "departamento",
"localidad", "municipio", "estado")
# Capas
capas <- c(GrayMap = "Esri.WorldGrayCanvas", StreetMap = "OpenStreetMap", TopoMap = "Esri.WorldTopoMap")
# Geodataframe
puntos_sf <- puntos |>
select(2, 1, everything()) |>
st_as_sf(coords = c("longitud", "latitud"), crs = 4326)
# Gráfico
tmap_mode("view")## tmap mode set to interactive viewing
tm_basemap(capas) +
tm_shape(puntos_sf, is.master = TRUE) +
# tm_markers(size = 0.5, popup.vars = mostrar) +
tm_dots(size = 0.1, clustering = T, popup.vars = mostrar) +
tm_layout(main.title = "Puntos Digitales", main.title.size = 0.7);Diccionario
# diccionario de datos
descripciones <- c(
"Identificador del Punto Digital",
"Nombre del Punto Digital",
"Dirección",
"Nombre Institucional",
"Identificador de la provincia",
"Identificador del departamento",
"Identificador de la localidad",
"Codigo BAHRA (Asentamientos Urbanos)",
"Identificador del municipio",
"Provincia",
"Departamento",
"Localidad",
"Municipio",
"Mail Institucional",
"Latitud",
"Longitud",
"Horarios",
"Link Facebook",
"Estado"
)
diccionario <- data.frame(
Clase = sapply(puntos, class),
Descripción = descripciones
)
diccionario <- tibble::rownames_to_column(diccionario, "Variable")
diccionario |>
gt(rowname_col = "Variable") |>
tab_header(
title = "Diccionario de Datos",
) |>
tab_options(table.width = "90%") |>
gt_theme_dot_matrix()| Diccionario de Datos | ||
| Clase | Descripción | |
|---|---|---|
| id_pd | integer | Identificador del Punto Digital |
| nombre_pd | character | Nombre del Punto Digital |
| direccion | character | Dirección |
| nombre_institucional | character | Nombre Institucional |
| id_provincia | character | Identificador de la provincia |
| id_departamento | integer | Identificador del departamento |
| id_localidad | integer | Identificador de la localidad |
| cod_bahra_localidad | numeric | Codigo BAHRA (Asentamientos Urbanos) |
| id_municipio | character | Identificador del municipio |
| provincia | character | Provincia |
| departamento | character | Departamento |
| localidad | character | Localidad |
| municipio | character | Municipio |
| mail_institucional | character | Mail Institucional |
| latitud | numeric | Latitud |
| longitud | numeric | Longitud |
| horarios | character | Horarios |
| link_facebook | character | Link Facebook |
| estado | character | Estado |
Se cargan indicadores sobre hogares con celualar y hogares con computadora del Censo 2010.
Carga de Indicadores
## Reading layer `indicadores' from data source
## `C:\Users\matar\OneDrive\Documentos\Proyectos\UNaB-AdDyPP-TFI\datos\indicadores.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 525 features and 37 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -73.5708 ymin: -55.05562 xmax: -53.6372 ymax: -21.78078
## Geodetic CRS: WGS 84
## Simple feature collection with 6 features and 37 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.46271 ymin: -34.6625 xmax: -58.33514 ymax: -34.56864
## Geodetic CRS: WGS 84
## DPTO H_TOTAL H_NBI H_COMPUTAD H_DOMESTIC H_HACINAMI H_HELADERA H_CADENA
## 1 02001 84468 13429 51500 923 2952 6910 4034
## 2 02002 73156 1497 57998 1969 326 515 208
## 3 02003 80489 9560 51631 310 1717 3561 304
## 4 02004 76455 9678 42164 155 2734 3408 3711
## 5 02005 76846 4652 54204 295 822 1527 216
## 6 02006 75189 1656 56637 413 386 570 111
## H_AGUA_RED H_AGUA_VIV H_CLOACA H_HOYO H_TECHO H_PISO H_CELULAR H_TELEFONO
## 1 1080 4034 1708 944 6765 7980 73457 60208
## 2 197 208 196 62 1358 595 65253 68708
## 3 422 304 291 38 3206 1593 69059 64202
## 4 517 3711 2596 1204 13668 8468 65630 53996
## 5 244 216 280 25 3226 1338 67096 66779
## 6 142 111 180 26 1922 778 66241 69116
## H_COMBUSTI H_PROPIETA H_INQUILIN H_NI_PROPI H_JEFE_MUJ H_JEFE_LIM H_JEFE_SOL
## 1 10966 41255 35912 7301 37496 13768 25241
## 2 320 42576 23847 6733 35857 2745 8277
## 3 2257 40816 33496 6177 37409 9172 23684
## 4 16059 45852 24093 6510 32436 13702 35900
## 5 1177 44918 26359 5569 34767 5066 19350
## 6 438 49633 20361 5195 32201 3040 14150
## H_JEFE_S_1 H_JEFE_SEC H_JEFE_TER H_JEFE_UNI H_CONYUGE_ IDPROV
## 1 33437 58270 6008 18825 22787 02
## 2 28360 64631 6437 29834 24366 02
## 3 34840 56173 6499 14834 23478 02
## 4 27277 39453 4581 7595 21912 02
## 5 32406 56998 6945 17647 27154 02
## 6 30743 60650 7601 22306 31675 02
## PROV IDDPTO DPTO_1 DEPARTAMEN DEPARTAM_1
## 1 Ciudad Autónoma de Buenos Aires 02001 Comuna 1 205886 84468
## 2 Ciudad Autónoma de Buenos Aires 02002 Comuna 2 157932 73156
## 3 Ciudad Autónoma de Buenos Aires 02003 Comuna 3 187537 80489
## 4 Ciudad Autónoma de Buenos Aires 02004 Comuna 4 218245 76455
## 5 Ciudad Autónoma de Buenos Aires 02005 Comuna 5 179005 76846
## 6 Ciudad Autónoma de Buenos Aires 02006 Comuna 6 176076 75189
## DEPARTAM_2 DEPARTAM_3 DEPARTAM_4 geometry
## 1 -34.60636 -58.37171 17.774 MULTIPOLYGON (((-58.3863 -3...
## 2 -34.58588 -58.39500 6.276 MULTIPOLYGON (((-58.38111 -...
## 3 -34.61383 -58.40269 6.386 MULTIPOLYGON (((-58.41192 -...
## 4 -34.64229 -58.38886 21.694 MULTIPOLYGON (((-58.35525 -...
## 5 -34.61735 -58.42061 6.660 MULTIPOLYGON (((-58.41726 -...
## 6 -34.61683 -58.44360 6.851 MULTIPOLYGON (((-58.4306 -3...
Computadoras
ggplot(indicadores_geo, aes(fill = 100*H_COMPUTAD/H_TOTAL, geometry = geometry)) +
geom_sf() +
scale_fill_viridis_c(option = "B",
limits = c(0, 100),
direction = -1,
name = "Hogares con Computadora",
labels = scales::percent_format(scale = 1)
) +
labs(title = "Hogares con Computadoras")Celulares
ggplot(indicadores_geo, aes(fill = 100*H_CELULAR/H_TOTAL, geometry = geometry)) +
geom_sf() +
scale_fill_viridis_c(option = "B",
limits = c(0, 100),
direction = -1,
name = "Hogares con Celular",
labels = scales::percent_format(scale = 1)
) +
labs(title = "Hogares con Teléfono Celular")Polígonos de Departamentos IGN
# Descomprimir el archivo 7-Zip
if (!file.exists(file.path(PATH, departamentos))) {
archive_extract(paste0(PATH, comprimido), PATH)
}
deptos_geo <- st_read(paste0(PATH, departamentos))## Reading layer `departamentos' from data source
## `C:\Users\matar\OneDrive\Documentos\Proyectos\UNaB-AdDyPP-TFI\datos\departamentos.json'
## using driver `GeoJSON'
## Simple feature collection with 529 features and 8 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -74 ymin: -90 xmax: -25 ymax: -21.78086
## Geodetic CRS: WGS 84
deptos <- as.data.frame(deptos_geo)
sample_n(select(deptos, -geometry), 10) |>
gt() |>
tab_header(title = "Departamentos* - GeoDataFrame",
subtitle = "* muestra"
) |>
tab_options(table.width = "90%") |>
gt_theme_pff()| Departamentos* - GeoDataFrame | |||||||
| * muestra | |||||||
| gid | objeto | fna | gna | nam | in1 | fdc | sag |
|---|---|---|---|---|---|---|---|
| 829 | Departamento | Partido de Balcarce | Partido | Balcarce | 06063 | ARBA - Gerencia de Servicios Catastrales | IGN |
| 611 | Departamento | Departamento Santa María | Departamento | Santa María | 14147 | IDE Cordoba | IGN |
| 878 | Departamento | Departamento San Blas de Los Sauces | Departamento | San Blas de Los Sauces | 46119 | IGN | IGN |
| 1055 | Departamento | Departamento Tinogasta | Departamento | Tinogasta | 10105 | IDE Catamarca | IGN |
| 712 | Departamento | Departamento Los Lagos | Departamento | Los Lagos | 58070 | Direc. Pcial. de Catastro e Inf. Territorial | IGN |
| 736 | Departamento | Departamento Belgrano | Departamento | Belgrano | 86042 | Catastro Provinciales | IGN |
| 585 | Departamento | Partido de General Pinto | Partido | General Pinto | 06351 | ARBA - Gerencia de Servicios Catastrales | IGN |
| 737 | Departamento | Departamento Aguirre | Departamento | Aguirre | 86007 | Catastro Provinciales | IGN |
| 580 | Departamento | Departamento Santa Rosa | Departamento | Santa Rosa | 50112 | IDE Mendoza | IGN |
| 547 | Departamento | Partido de General Paz | Partido | General Paz | 06343 | ARBA - Gerencia de Servicios Catastrales | IGN |
ggplot() +
geom_sf(data = subset(deptos_geo, in1!="94028")) + # 92028 antartida
labs(title = "Partidos de Argentina")Lista de Actividades de los Puntos Digitales
Carga de Bases Mensuales
lista <- list()
archivos <- list.files(path = PATH2, pattern = "^[0-9]{4}-[0-9]{2}\\.csv")
for (archivo in archivos) {
df <- read.csv(file.path(PATH2, archivo), sep = ",", encoding = "ISO-8859-1")
# extrae fecha del n de archivo
fecha <- strsplit(tools::file_path_sans_ext(archivo), "-", fixed = TRUE)[[1]]
df <- df |>
mutate(anio = as.integer(trimws(fecha[1])),
mes = as.integer(trimws(fecha[2])))
lista <- c(lista, list(df))
}
actividades <- bind_rows(lista)Muestra de Actividades Mensuales
sample_n(actividades, 10) |>
gt() |>
tab_header(
title = "Actividades*",
subtitle = "* muestra"
) |>
tab_options(table.width = "100%") |>
opt_stylize(style = 5, color = 'cyan')| Actividades* | |||||||||||||||||||||||||
| * muestra | |||||||||||||||||||||||||
| nombre_punto_digital | eje | eje_id | hasta_11 | hasta_11_femenino | hasta_11_masculino | hasta_11_x | de_12_a_20 | de_12_a_20_femenino | de_12_a_20_masculino | de_12_a_20_x | de_21_a_65 | de_21_a_65_femenino | de_21_a_65_masculino | de_21_a_65_x | desde_65 | desde_65_femenino | desde_65_masculino | desde_65_x | Totales | provincia | categoria | subcategoria | cantidad_actividad | anio | mes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bella Vista (Corrientes) | Capacitaciones PPD | 34 | 0 | NA | NA | NA | 0 | NA | NA | NA | 3 | NA | NA | NA | 0 | NA | NA | NA | 3 | Corrientes | Vinculación | 1 | 2022 | 10 | |
| Fray Luis Beltrán | Salud | 19 | 0 | NA | NA | NA | 25 | NA | NA | NA | 48 | NA | NA | NA | 44 | NA | NA | NA | 117 | Santa Fe | Salud | Gestión y prevención COVID | 1 | 2022 | 12 |
| Lomas de Zamora IV (Villa Fiorito) | Formación Laboral | 13 | 0 | NA | NA | NA | 0 | NA | NA | NA | 0 | NA | NA | NA | 0 | NA | NA | NA | 0 | Buenos Aires | Oficios digitales | Diseño gráfico | 1 | 2022 | 12 |
| Nono | Cultura y Entretenimiento | 31 | 35 | NA | NA | NA | 38 | NA | NA | NA | 22 | NA | NA | NA | 2 | NA | NA | NA | 97 | Córdoba | Actividad | Actividad con uso de consola de videojuegos | 1 | 2022 | 12 |
| Ciudad de Santa Fe II (Mediateca) | Trámites | 22 | 7 | NA | NA | NA | 12 | NA | NA | NA | 41 | NA | NA | NA | 36 | NA | NA | NA | 96 | Santa Fe | Trámites Nacionales | ANSES | 4 | 2021 | 12 |
| La Puerta | Formación Laboral | 13 | 0 | NA | NA | NA | 45 | NA | NA | NA | 112 | NA | NA | NA | 1 | NA | NA | NA | 158 | Córdoba | Oficios digitales | Impresión y Diseño 3D | 3 | 2022 | 10 |
| Azul | Salud | 19 | 0 | NA | NA | NA | 0 | NA | NA | NA | 50 | NA | NA | NA | 10 | NA | NA | NA | 60 | Buenos Aires | Salud | Uso terapéutico del espacio de entretenimiento | 1 | 2020 | 11 |
| San Javier (Misiones) | Ciudadanía y DD | 25 | 0 | NA | NA | NA | 0 | NA | NA | NA | 5 | NA | NA | NA | 0 | NA | NA | NA | 5 | Misiones | Comunidad | Otros | 1 | 2022 | 10 |
| Sauce Viejo | Educación | 16 | 28 | NA | NA | NA | 8 | NA | NA | NA | 21 | NA | NA | NA | 0 | NA | NA | NA | 57 | Santa Fe | Complementos de la educación formal | Talleres País Digital | 3 | 2021 | 11 |
| Aristóbulo del Valle | Cultura y Entretenimiento | 31 | 89 | NA | NA | NA | 149 | NA | NA | NA | 115 | NA | NA | NA | 0 | NA | NA | NA | 353 | Misiones | Artes | Otros | 2 | 2021 | 11 |
Matriz de Correlación
Gráfico de Correlación personalizado